/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
package org.mozilla.android.sync.test.helpers;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
import java.util.Arrays;
import org.mozilla.gecko.sync.repositories.domain.Record;
import junit.framework.AssertionFailedError;
public class ExpectFetchSinceDelegate extends DefaultFetchDelegate {
private String[] expected;
private long earliest;
public ExpectFetchSinceDelegate(long timestamp, String[] guids) {
expected = guids;
earliest = timestamp;
Arrays.sort(expected);
}
@Override
public void onFetchCompleted(final long fetchEnd) {
AssertionFailedError err = null;
try {
int countSpecials = 0;
for (Record record : records) {
// Check if record should be ignored.
if (!ignore.contains(record.guid)) {
assertFalse(-1 == Arrays.binarySearch(this.expected, record.guid));
} else {
countSpecials++;
}
// Check that record is later than timestamp-earliest.
assertTrue(record.lastModified >= this.earliest);
}
assertEquals(this.expected.length, records.size() - countSpecials);
} catch (AssertionFailedError e) {
err = e;
}
performNotify(err);
}
}